1 Podsumowanie analizy

W raporcie analizie poddany został składający się z 12 tabel zbiór danych dotyczący LEGO, pochodzący z bazy Rebrickable. W pierwszej sekcji znajduje się kod odpowiedzialny za import wszystkich wykorzystanych w raporcie bibliotek. Kolejna sekcja zawiera kod odpowiedzialny za wczytanie danych. Następnym elementem raportu jest opis zbioru danych, czyli krótki opis każdej tabeli i jej parametrów oraz wyświetlenie ich podstawowych statystyk i liczności tabeli. W kolejnej sekcji znajduje się analiza danych. Zawarte tam zostały wykresy i tabele podsumowujące dane dotyczące LEGO. W sekcji Trendy przeanalizowano zachodzące zmiany dotyczące LEGO na przestrzeni lat. Sekcja Korelacja zawiera analizę zależności pomiędzy wybranymi cechami zbioru. W sekcji Klasyfikacja przygotowano model uczenia maszynowego próbujący przewidzieć średnią liczbę części na jeden zestaw. Wykorzystano do tego algorytm Random Forest z zastosowaniem walidacji krzyżowej. W ostatniej sekcji zastosowano bibliotekę forecast (model Arima) w celu próby prognozy zmian wartości wybranych cech LEGO w następnych latach.

Wnioski z raportu:

  • Prawie wszystkie (około 98,9%) części LEGO wykonane są z plastiku. Następnym materiałem wykorzystywanym przy produkcji LEGO jest guma (około 0,71%). [rys]
  • Najczęściej występującą figurką LEGO jest figurka szkieletu. Innymi popularnymi figurkami są te związane z zawodami, sagą Star Wars czy grą Minecraft. [rys]
  • Najbardziej popularnymi tematykami zestawów są: Books, Star Wars i Technic. [rys]
  • Największym zestawem jest zestaw “World Map” składający się z blisko 12 tysięcy części. [rys]
  • Najpopularniejsze kolory klocków LEGO to czarny i biały. [rys]
  • Uniwersalne klocki są najpopularniejsze. [rys]
  • Większość klocków jest nieprzezroczysta. [rys]
  • Najbardziej złożoną tematyką jest “Collectable Minifgures”. Składa się ona z największej liczby “podmotywów”. [rys]
  • Z roku na rok w zestawach łącznie wykorzystywanych jest co raz więcej figurek [rys1], co ma również związek ze stale rosnącą liczbą wydawanych zestawów [rys2]
  • W ostatnich latach widać delikatny spadek średniej liczby elementów składających się na jedną część. [rys]
  • Istnieje trend związany z rosnącą średnią liczbą klocków w zestawie. Zestawy są co raz bardziej złożone. [rys]
  • Liczba nowych tematyk (motywów) rośnie wraz z biegiem lat. [rys]

2 Wykorzystane biblioteki

Do stworzenia raportu wykorzystano następujące biblioteki:

library(knitr)
library(dplyr)
library(ggplot2)
library(skimr)
library(plotly)
library(caret)
library(ggeasy)
library(formattable)
library(tidyverse)
library(scales)
library(ggcorrplot)
library(forecast)

W celu uzyskania powtarzalności rezultatów ustawiono ziarno dla generatora liczb pseudolosowych.

set.seed(23)

3 Wczytanie danych

Poniżej znajduje się kod odpowiedzialny za wczytanie danych z plików.

inventories <- read.csv("rebrickable/inventories.csv")
inventory_parts <- read.csv("rebrickable/inventory_parts.csv")
parts <- read.csv("rebrickable/parts.csv")
part_categories <- read.csv("rebrickable/part_categories.csv")
part_relationships <- read.csv("rebrickable/part_relationships.csv")
elements <- read.csv("rebrickable/elements.csv")
colors <- read.csv("rebrickable/colors.csv")
inventory_minifigs <- read.csv("rebrickable/inventory_minifigs.csv")
minifigs <- read.csv("rebrickable/minifigs.csv")
inventory_sets <- read.csv("rebrickable/inventory_sets.csv")
sets <- read.csv("rebrickable/sets.csv")
themes <- read.csv("rebrickable/themes.csv")

4 Opis zbioru danych

Cały zbiór danych dotyczący klocków LEGO składa się z 12 tabel. Na obrazku poniżej przedstawiono ich schemat.

Poniżej znajdują się sekcje zawierające opisy każdej z tabel, informacje o ich rozmiarze oraz podstawowe statystyki.

4.1 Inventories

Jest to tabela nadrzędna łącząca części i figurki z zestawami LEGO.
Tabela zawiera 37265 rekordów.

Atrybuty w tej tabeli to:

  • id
  • version - numer wersji
  • set_num - numer zestawu
Podstawowe statystyki danych z tabeli
id version set_num
Min. : 1 Min. : 1.000 Length:37265
1st Qu.: 14424 1st Qu.: 1.000 Class :character
Median : 54379 Median : 1.000 Mode :character
Mean : 61104 Mean : 1.091 NA
3rd Qu.: 88842 3rd Qu.: 1.000 NA
Max. :194312 Max. :16.000 NA
Kilka pierwszych elementów z tabeli
id version set_num
1 1 7922-1
3 1 3931-1
4 1 6942-1
15 1 5158-1
16 1 903-1
17 1 850950-1
Data summary
Name inventories
Number of rows 37265
Number of columns 3
_______________________
Column type frequency:
character 1
numeric 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
set_num 0 1 3 20 0 35644 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
id 0 1 61103.60 51380.10 1 14424 54379 88842 194312 ▇▆▂▂▂
version 0 1 1.09 0.58 1 1 1 1 16 ▇▁▁▁▁

4.2 Inventory Parts

W tej tabeli zostały zawarte informacje o zapasach (nakładach) części LEGO.
Tabela zawiera 1180987 rekordów.

Atrybuty w tej tabeli to:

  • inventory_id
  • part_num - oznaczenie części
  • color_id - numer koloru
  • quantity - ilość
  • is_spare - zmienna typu bool, określająca czy część jest zapasowa
  • img_url - adres url zdjęcia części
Podstawowe statystyki danych z tabeli
inventory_id part_num color_id quantity is_spare img_url
Min. : 1 Length:1180987 Min. : -1.0 Min. : 1.00 Length:1180987 Length:1180987
1st Qu.: 9404 Class :character 1st Qu.: 4.0 1st Qu.: 1.00 Class :character Class :character
Median : 22838 Mode :character Median : 15.0 Median : 2.00 Mode :character Mode :character
Mean : 50849 NA Mean : 131.8 Mean : 3.37 NA NA
3rd Qu.: 87088 NA 3rd Qu.: 71.0 3rd Qu.: 4.00 NA NA
Max. :194312 NA Max. :9999.0 Max. :3064.00 NA NA
Kilka pierwszych elementów z tabeli
inventory_id part_num color_id quantity is_spare img_url
1 48379c01 72 1 f https://cdn.rebrickable.com/media/parts/photos/1/48379c01-1-e7daa845-2671-4737-8642-3b1574308155.jpg
1 48395 7 1 f https://cdn.rebrickable.com/media/parts/photos/7/48395-7-b9152acf-2fa5-4836-a04d-5b7fd39c2406.jpg
1 stickerupn0077 9999 1 f
1 upn0342 0 1 f
1 upn0350 25 1 f
3 2343 47 1 f https://cdn.rebrickable.com/media/parts/elements/3000240.jpg
Data summary
Name inventory_parts
Number of rows 1180987
Number of columns 6
_______________________
Column type frequency:
character 3
numeric 3
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
part_num 0 1 1 20 0 51051 0
is_spare 0 1 1 1 0 2 0
img_url 0 1 0 117 8180 74266 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
inventory_id 0 1 50849.46 55136.94 1 9404 22838 87088 194312 ▇▂▁▂▁
color_id 0 1 131.78 862.38 -1 4 15 71 9999 ▇▁▁▁▁
quantity 0 1 3.37 9.95 1 1 2 4 3064 ▇▁▁▁▁

4.3 Parts

Tabela parts zawiera informacje o częściach LEGO, które mogą składać się z kilku elementów.
Tabela zawiera 52615 rekordów.

Atrybuty w tej tabeli to:

  • part_num - oznaczenie części
  • name - nazwa części
  • part_cat_id - id kategorii części
  • part_material - materiał, z którego wykonano część
Podstawowe statystyki danych z tabeli
part_num name part_cat_id part_material
Length:52615 Length:52615 Min. : 1.00 Length:52615
Class :character Class :character 1st Qu.:17.00 Class :character
Mode :character Mode :character Median :41.00 Mode :character
NA NA Mean :38.91 NA
NA NA 3rd Qu.:60.00 NA
NA NA Max. :68.00 NA
Kilka pierwszych elementów z tabeli
part_num name part_cat_id part_material
003381 Sticker Sheet for Set 663-1 58 Plastic
003383 Sticker Sheet for Sets 618-1, 628-2 58 Plastic
003402 Sticker Sheet for Sets 310-3, 311-1, 312-3 58 Plastic
003429 Sticker Sheet for Set 1550-1 58 Plastic
003432 Sticker Sheet for Sets 357-1, 355-1, 940-1 58 Plastic
003434 Sticker Sheet for Set 575-2, 653-1, 460-1 58 Plastic
Data summary
Name parts
Number of rows 52615
Number of columns 4
_______________________
Column type frequency:
character 3
numeric 1
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
part_num 0 1 1 20 0 52615 0
name 0 1 3 222 0 52103 0
part_material 0 1 4 16 0 7 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
part_cat_id 0 1 38.91 22.08 1 17 41 60 68 ▃▃▂▁▇

4.4 Part Categories

Tabela part_categories zawiera informacje o kategoriach części LEGO.
Tabela zawiera 66 rekordów.

Atrybuty w tej tabeli to:

  • id
  • name - nazwa kategorii części
Podstawowe statystyki danych z tabeli
id name
Min. : 1.00 Length:66
1st Qu.:19.25 Class :character
Median :35.50 Mode :character
Mean :35.36 NA
3rd Qu.:51.75 NA
Max. :68.00 NA
Kilka pierwszych elementów z tabeli
id name
1 Baseplates
3 Bricks Sloped
4 Duplo, Quatro and Primo
5 Bricks Special
6 Bricks Wedged
7 Containers
Data summary
Name part_categories
Number of rows 66
Number of columns 2
_______________________
Column type frequency:
character 1
numeric 1
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
name 0 1 4 44 0 66 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
id 0 1 35.36 19.41 1 19.25 35.5 51.75 68 ▇▇▇▇▇

4.5 Part Relationships

W tej tabeli zostały zawarte informacje o relacjach między poszczególnymi częściami.
Tabela zawiera 29977 rekordów.

Atrybuty w tej tabeli to:

  • rel_type - oznaczenie relacji
  • child_part_num - oznaczenie części “dziecka”
  • parent_part_num - oznaczenie części “rodzica”
Podstawowe statystyki danych z tabeli
rel_type child_part_num parent_part_num
Length:29977 Length:29977 Length:29977
Class :character Class :character Class :character
Mode :character Mode :character Mode :character
Kilka pierwszych elementów z tabeli
rel_type child_part_num parent_part_num
P 3626cpr3662 3626c
P 87079pr9974 87079
P 3960pr9971 3960
R 98653pr0003 98086pr0003
R 98653pr0003 98088pat0003
R 98653pr0003 98089pat0003
Data summary
Name part_relationships
Number of rows 29977
Number of columns 3
_______________________
Column type frequency:
character 3
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
rel_type 0 1 1 1 0 6 0
child_part_num 0 1 1 20 0 27139 0
parent_part_num 0 1 1 19 0 4725 0

4.6 Elements

W tabeli elements znajdują się informacje o pojedynczych klockach LEGO.
Tabela zawiera 84138 rekordów.

Atrybuty w tej tabeli to:

  • element_id
  • part_num - oznaczenie części, w której skład wchodzi dany element
  • color_id - numer koloru
  • design_id
Podstawowe statystyki danych z tabeli
element_id part_num color_id design_id
Min. : 9327 Length:84138 Min. : -1.0 Min. : 1001
1st Qu.: 4259774 Class :character 1st Qu.: 8.0 1st Qu.: 18454
Median : 6057754 Mode :character Median : 28.0 Median : 41748
Mean : 5222065 NA Mean : 539.7 Mean : 45570
3rd Qu.: 6262024 NA 3rd Qu.: 135.0 3rd Qu.: 75474
Max. :61532443 NA Max. :9999.0 Max. :107520
NA NA NA NA’s :23682
Kilka pierwszych elementów z tabeli
element_id part_num color_id design_id
6443403 2277c01pr0009 1 2277
6300211 67906c01 14 67908
4566309 2564 0 2564
4275423 53657 1004 53657
6194308 92926 71 28967
6229123 26561 4 26561
Data summary
Name elements
Number of rows 84138
Number of columns 4
_______________________
Column type frequency:
character 1
numeric 3
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
part_num 0 1 2 19 0 33765 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
element_id 0 1.00 5222065.12 1596842.63 9327 4259773.50 6057754 6262024.5 61532443 ▇▁▁▁▁
color_id 0 1.00 539.67 2044.86 -1 8.00 28 135.0 9999 ▇▁▁▁▁
design_id 23682 0.72 45569.87 30750.66 1001 18453.75 41748 75474.5 107520 ▇▆▅▅▃

4.7 Colors

Tabela colors zawiera informacje o oficjalnych kolorach klocków LEGO.
Tabela zawiera 263 rekordy.

Atrybuty w tej tabeli to:

  • id
  • name - nazwa koloru
  • rgb - kolor zapisany w formacie RGB
  • is_trans - zmienna typu bool, określająca czy kolor jest transparentny
Podstawowe statystyki danych z tabeli
id name rgb is_trans
Min. : -1.0 Length:263 Length:263 Length:263
1st Qu.: 83.0 Class :character Class :character Class :character
Median :1005.0 Mode :character Mode :character Mode :character
Mean : 651.4 NA NA NA
3rd Qu.:1070.5 NA NA NA
Max. :9999.0 NA NA NA
Kilka pierwszych elementów z tabeli
id name rgb is_trans
-1 [Unknown] 0033B2 f
0 Black 05131D f
1 Blue 0055BF f
2 Green 237841 f
3 Dark Turquoise 008F9B f
4 Red C91A09 f
Data summary
Name colors
Number of rows 263
Number of columns 4
_______________________
Column type frequency:
character 3
numeric 1
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
name 0 1 3 28 0 263 0
rgb 0 1 6 6 0 223 0
is_trans 0 1 1 1 0 2 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
id 0 1 651.38 750.55 -1 83 1005 1070.5 9999 ▇▁▁▁▁

4.8 Inventory Minifigs

W tej tabeli zawarte zostały informacje o zapasach (nakładzie) figurek LEGO.
Tabela zawiera 20858 rekordów.

Atrybuty w tej tabeli to:

  • inventory_id
  • fig_num - oznaczenie figurki
  • quantity - ilość
Podstawowe statystyki danych z tabeli
inventory_id fig_num quantity
Min. : 3 Length:20858 Min. : 1.000
1st Qu.: 7869 Class :character 1st Qu.: 1.000
Median : 15681 Mode :character Median : 1.000
Mean : 43010 NA Mean : 1.062
3rd Qu.: 66834 NA 3rd Qu.: 1.000
Max. :194312 NA Max. :100.000
Kilka pierwszych elementów z tabeli
inventory_id fig_num quantity
3 fig-001549 1
4 fig-000764 1
19 fig-000555 1
25 fig-000574 1
26 fig-000842 1
26 fig-008641 1
Data summary
Name inventory_minifigs
Number of rows 20858
Number of columns 3
_______________________
Column type frequency:
character 1
numeric 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
fig_num 0 1 10 10 0 13455 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
inventory_id 0 1 43010.44 52256.78 3 7869 15681 66834 194312 ▇▁▁▁▁
quantity 0 1 1.06 0.78 1 1 1 1 100 ▇▁▁▁▁

4.9 Minifigs

W tabela minifigs znajdują się informacje o figurkach LEGO.
Tabela zawiera 13764 rekordy.

Atrybuty w tej tabeli to:

  • fig_num - numer figurki
  • name - nazwa figurki
  • num_parts - liczba części
  • img_url - adres url zdjęcia figurki
Podstawowe statystyki danych z tabeli
fig_num name num_parts img_url
Length:13764 Length:13764 Min. : 0.000 Length:13764
Class :character Class :character 1st Qu.: 4.000 Class :character
Mode :character Mode :character Median : 4.000 Mode :character
NA NA Mean : 5.296 NA
NA NA 3rd Qu.: 5.000 NA
NA NA Max. :156.000 NA
Kilka pierwszych elementów z tabeli
fig_num name num_parts img_url
fig-000001 Toy Store Employee 4 https://cdn.rebrickable.com/media/sets/fig-000001.jpg
fig-000002 Customer Kid 4 https://cdn.rebrickable.com/media/sets/fig-000002.jpg
fig-000003 Assassin Droid, White 8 https://cdn.rebrickable.com/media/sets/fig-000003.jpg
fig-000004 Man, White Torso, Black Legs, Brown Hair 4 https://cdn.rebrickable.com/media/sets/fig-000004.jpg
fig-000005 Captain America with Short Legs 3 https://cdn.rebrickable.com/media/sets/fig-000005.jpg
fig-000006 Lloyd Avatar 5 https://cdn.rebrickable.com/media/sets/fig-000006.jpg
Data summary
Name minifigs
Number of rows 13764
Number of columns 4
_______________________
Column type frequency:
character 3
numeric 1
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
fig_num 0 1 10 10 0 13764 0
name 0 1 1 148 0 13354 0
img_url 0 1 53 53 0 13764 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
num_parts 0 1 5.3 6.03 0 4 4 5 156 ▇▁▁▁▁

4.10 Inventory Sets

Tabela inventory_sets zawiera informacje o zapasach (nakładzie) zestawów LEGO.
Tabela zawiera 4358 rekordów.

Atrybuty w tej tabeli to:

  • inventory_id
  • set_num - oznaczenie zestawu
  • quantity - liczba
Podstawowe statystyki danych z tabeli
inventory_id set_num quantity
Min. : 35 Length:4358 Min. : 1.000
1st Qu.: 8076 Class :character 1st Qu.: 1.000
Median : 16423 Mode :character Median : 1.000
Mean : 52519 NA Mean : 1.813
3rd Qu.: 98685 NA 3rd Qu.: 1.000
Max. :191576 NA Max. :60.000
Kilka pierwszych elementów z tabeli
inventory_id set_num quantity
35 75911-1 1
35 75912-1 1
39 75048-1 1
39 75053-1 1
50 4515-1 1
50 4520-1 2
Data summary
Name inventory_sets
Number of rows 4358
Number of columns 3
_______________________
Column type frequency:
character 1
numeric 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
set_num 0 1 5 20 0 3171 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
inventory_id 0 1 52518.95 59063.13 35 8076 16423 98685 191576 ▇▁▁▂▁
quantity 0 1 1.81 5.67 1 1 1 1 60 ▇▁▁▁▁

4.11 Sets

Tabela sets zawiera informacje o oficjalnych kolorach klocków LEGO.
Tabela zawiera 21880 rekordów.

Atrybuty w tej tabeli to:

  • set_num - oznaczenie zestawu
  • name - nazwa zestawu
  • year - rok, z którego pochodzi zestaw
  • theme_id - numer kategorii zestawu
  • num_parts - liczba części
  • img_url - adres url zdjęcia zestawu
Podstawowe statystyki danych z tabeli
set_num name year theme_id num_parts img_url
Length:21880 Length:21880 Min. :1949 Min. : 1 Min. : 0.0 Length:21880
Class :character Class :character 1st Qu.:2001 1st Qu.:273 1st Qu.: 3.0 Class :character
Mode :character Mode :character Median :2012 Median :497 Median : 31.0 Mode :character
NA NA Mean :2008 Mean :442 Mean : 161.4 NA
NA NA 3rd Qu.:2018 3rd Qu.:608 3rd Qu.: 139.0 NA
NA NA Max. :2024 Max. :752 Max. :11695.0 NA
Kilka pierwszych elementów z tabeli
set_num name year theme_id num_parts img_url
001-1 Gears 1965 1 43 https://cdn.rebrickable.com/media/sets/001-1.jpg
0011-2 Town Mini-Figures 1979 67 12 https://cdn.rebrickable.com/media/sets/0011-2.jpg
0011-3 Castle 2 for 1 Bonus Offer 1987 199 0 https://cdn.rebrickable.com/media/sets/0011-3.jpg
0012-1 Space Mini-Figures 1979 143 12 https://cdn.rebrickable.com/media/sets/0012-1.jpg
0013-1 Space Mini-Figures 1979 143 12 https://cdn.rebrickable.com/media/sets/0013-1.jpg
0014-1 Space Mini-Figures 1979 143 2 https://cdn.rebrickable.com/media/sets/0014-1.jpg
Data summary
Name sets
Number of rows 21880
Number of columns 6
_______________________
Column type frequency:
character 3
numeric 3
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
set_num 0 1 3 20 0 21880 0
name 0 1 2 93 0 18752 0
img_url 0 1 46 63 0 21880 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
year 0 1 2007.76 13.96 1949 2001 2012 2018 2024 ▁▁▁▃▇
theme_id 0 1 441.97 215.53 1 273 497 608 752 ▃▃▃▇▇
num_parts 0 1 161.38 418.14 0 3 31 139 11695 ▇▁▁▁▁

4.12 Themes

W tej tabeli zawarte zostały informacje o oryginalnych kategoriach (tematykach) zestawów, jak i o współpracach np. (Lego Star Wars).
Tabela zawiera 468 rekordów.

Atrybuty w tej tabeli to:

  • id
  • name - nazwa kategorii (tematyki)
  • parent_id - numer kategorii “rodzica”
Podstawowe statystyki danych z tabeli
id name parent_id
Min. : 1.0 Length:468 Min. : 1.0
1st Qu.:250.5 Class :character 1st Qu.:186.0
Median :466.0 Mode :character Median :411.0
Mean :433.5 NA Mean :360.6
3rd Qu.:625.2 NA 3rd Qu.:512.5
Max. :752.0 NA Max. :697.0
NA NA NA’s :145
Kilka pierwszych elementów z tabeli
id name parent_id
1 Technic NA
3 Competition 1
4 Expert Builder 1
16 RoboRiders 1
17 Speed Slammers 1
18 Star Wars 1
Data summary
Name themes
Number of rows 468
Number of columns 3
_______________________
Column type frequency:
character 1
numeric 2
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
name 0 1 2 42 0 385 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
id 0 1.00 433.46 216.55 1 250.5 466 625.25 752 ▅▅▅▆▇
parent_id 145 0.69 360.64 197.19 1 186.0 411 512.50 697 ▅▃▂▇▂

5 Analiza danych

W tej sekcji dokonano analizy zbioru danych dotyczących LEGO.

5.1 Najczęściej występujące figurki w zestawach

Poniższy wykres przedstawia 10 najczęściej występujących figurek w zestawach LEGO.

Z wykresu można odczytać, że najbardziej popularną figurką jest figurka szkieletu, która występuje w 43 zestawach.

5.2 Rozkład materiałów, z których wykonano części

Poniżej znajduje się wykres kołowy oraz tabela podsumowująca procentowy rozkład materiałów, z których wykonano części LEGO. Niemalże wszystkie z nich (aż około 98,88%) zostały wykonane z plastiku. Następnym najczęściej używanym materiałem jest guma (około 0.71%).

Materiał Liczba części Procent
Plastic 1167738 98.8781%
Rubber 8440 0.7147%
Cardboard/Paper 2367 0.2004%
Cloth 2029 0.1718%
Flexible Plastic 245 0.0207%
Metal 101 0.0086%
Foam 67 0.0057%

5.3 Najbardziej popularne tematyki zestawów

Poniżej znajduje się wykres przedstawiający 10 tematyk (motywów), w których jest najwięcej zestawów.

Z powyższego wykresu wynika, że najpopularniejsza tematyka (motywem) to “Books”, gdyż w tej kategorii są 973 zestawy.

5.4 Największe zestawy

Następna analiza dotyczy wielkości zestawów. Poniżej znajduje się wykres i tabela prezentująca 10 najbardziej złożonych zestawów LEGO ze zbioru Rebrickable.

Nazwa Liczba części
World Map 11695
Eiffel Tower 10001
The Ultimate Battle for Chima 9987
Titanic 9092
Colosseum 9036
Millennium Falcon 7541
AT-AT 6785
The Razor Crest 6194
Lord of the Rings: Rivendell 6182
NINJAGO City Markets 6163

Największym zestawem LEGO w podanym zbiorze danych jest World Map, który składa się z dokładnie 11695 części.

5.5 Najpopularniejsze kolory części

W podanym zbiorze danym warto również było dokonać analizy popularności kolorów. Poniżej znajduje się wykres przedstawiający 10 najpopularniejszych kolorów części.

Z powyższego wykresu wynika, że najpopularniejeszymi kolorami części LEGO są czarny i biały.

5.6 Najpopularniejsze kategorie (rodzaje) części

Poniżej znajduje się wykres przedstawiający 10 najczęściej występujących kategorii (rodzajów) części.

Z powyższego wykresu wynika, że najliczniejszą kategorią jest Minifig Upper Body, do której należy 6329 części.

5.7 Najpopularniejsze części w zestawach

Kolejna analiza dotyczy popularności części w zestawach (biorąc pod uwagę również kolor). Poniżej znajduje się wykres oraz tabela przedstawiająca 10 najpopularniejszych części w zestawach LEGO.

Nr części Nazwa części Łączna liczba wystąpień części
2780 Technic Pin with Friction Ridges Lengthwise and Center Slots 4769
6141 Plate Round 1 x 1 with Solid Stud 2922
3023 Plate 1 x 2 2630
6141 Plate Round 1 x 1 with Solid Stud 2371
3673 Technic Pin without Friction Ridges Lengthwise 2312
43093 Technic Axle Pin with Friction Ridges Lengthwise 2264
3023 Plate 1 x 2 2256
4274 Technic Pin 1/2 2237
3022 Plate 2 x 2 2098
3020 Plate 2 x 4 2092

Najczęściej występującą częścią w zestawach jest Technic Pin with Friction Ridges Lengthwise and Center Slots, który znalazł sie łącznie 4769 razy we wszystkich zestawach LEGO.

5.8 Przezroczystość części

Dokonano również analizy dotyczącej transparentności części (czy część jest przezroczysta). Poniżej znajduje sie wykres oraz tabela przedstawiająca, ile jest transparentnych i nietransparentnych części.

Transparentność Liczba części [%]
Nie 78966 94%
Tak 5172 6%

Na podstawie wykresu i tabeli można stwierdzić, że zdecydowana większość (94%) części posiada kolor (jest nieprzezroczysta).

5.9 Najbardziej złożone tematyki (motywy)

Następna analiza ma na celu znalezienie najbardziej złożonych tematyk (motywów) tj. takich, w których skład wchodzą inne tematyki (motywy). Poniżej znajduje się wykres przedstawiający 10 motywów z największą liczbą podmotywów.

6 Trendy

W tej sekcji dokonano analizy zmian związanych z LEGO, jakie zachodziły na przestrzeni lat.

6.1 Tematyki zestawów

Poniżej znajduje się wykres pokazujący jak zmieniała się liczba nowych tematyk na przestrzeni lat (1949-2023).

6.2 Części w zestawach

Kolejna analiza dotyczy średniej liczby części wchodzącej w skład zestawów na przestrzeni lat (1949-2023).

6.3 Figurki w zestawach

Poniżej znajduje się wykres przedstawiający wykorzystanie figurek w zestawach. Pierwsze figurki LEGO pojawiły się w 1975 roku.

6.4 Zestawy na przestrzeni lat

W tej sekcji przeanalizowano liczbę zestawów pojawiających się na przestrzeni lat.

6.5 Liczba elementów w części

Poniżej znajduje się wykres pokazujący jak na przestrzeni lat zmieniała się średnia liczba elementów w jednej części.

7 Korelacja

Poniżej znajduje się wykres przedstawiający korelację pomiędzy poszczególnymi parametrami w zbiorze.

year new_themes_count set_mean_parts sets_count figures_count mean_elements_per_part
year 1.0000000 0.9582409 0.7233515 0.9387636 0.9142305 0.5046801
new_themes_count 0.9582409 1.0000000 0.6550353 0.9503790 0.9135261 0.4704375
set_mean_parts 0.7233515 0.6550353 1.0000000 0.6887085 0.7524310 0.0024544
sets_count 0.9387636 0.9503790 0.6887085 1.0000000 0.9700925 0.3025752
figures_count 0.9142305 0.9135261 0.7524310 0.9700925 1.0000000 0.2265509
mean_elements_per_part 0.5046801 0.4704375 0.0024544 0.3025752 0.2265509 1.0000000

Z powyższej tabeli wynika, że najwyższe wartości współczynnika korelacji wiążą rok z:

  • liczbą nowych zestawów
  • średnią liczbą klocków w zestawie
  • liczbą wykorzystanych figurek
  • liczbą unikalnych tematyk

8 Predykcja - klasyfikacja

W tej sekcji wykorzystano uczenie maszynowe w celu predykcji średniej liczby części w zestawach. Wykorzystano do tego algorytm Random Forest z użyciem walidacji krzyżowej.

inTraining <- createDataPartition(y = dataset$set_mean_parts, p = .7, list = FALSE)

training <- dataset[ inTraining,]
testing  <- dataset[-inTraining,]

ctrl <- trainControl(method = "cv", number=10)
rfGrid <- expand.grid(mtry = 1:30)

fit <- train(
  set_mean_parts ~ .,
  data = training,  
  method = "rf", 
  trControl = ctrl,
  tuneGrid = rfGrid,
  ntree = 20)

fit
## Random Forest 
## 
## 37 samples
##  5 predictor
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold) 
## Summary of sample sizes: 33, 33, 35, 34, 33, 33, ... 
## Resampling results across tuning parameters:
## 
##   mtry  RMSE      Rsquared   MAE     
##    1    27.95597  0.7523095  22.94473
##    2    30.26546  0.7450520  25.47801
##    3    27.51097  0.7480646  22.77059
##    4    28.90024  0.6936379  24.51701
##    5    28.24055  0.7051577  23.48441
##    6    30.00875  0.7059354  25.57717
##    7    28.01896  0.7323098  23.29654
##    8    26.57732  0.7318102  22.47492
##    9    29.64234  0.6907196  25.34591
##   10    28.00618  0.7049286  23.26473
##   11    29.30981  0.7296562  24.02080
##   12    28.75095  0.7090346  24.35170
##   13    27.60619  0.7305205  23.68135
##   14    29.72423  0.7193529  24.98283
##   15    29.48735  0.7439887  24.13587
##   16    27.05973  0.7360077  23.20496
##   17    28.62300  0.7074503  23.71597
##   18    29.63426  0.7017150  25.04597
##   19    28.66220  0.7187713  23.22313
##   20    31.00487  0.7077293  26.05903
##   21    26.01643  0.7227936  21.95382
##   22    28.06467  0.7084066  23.45392
##   23    27.22992  0.7111318  22.60203
##   24    29.66535  0.7006079  25.44821
##   25    28.73162  0.7010999  24.22727
##   26    27.97048  0.7165169  22.55339
##   27    28.40390  0.7134761  23.54947
##   28    29.89694  0.7258457  24.12682
##   29    30.22594  0.6849923  26.70829
##   30    28.65499  0.7185829  24.13425
## 
## RMSE was used to select the optimal model using the smallest value.
## The final value used for the model was mtry = 21.
rfPredict <- predict(fit, newdata = testing)

testing %>% 
  select(year, set_mean_parts) -> data_to_compare
data_to_compare$Predictions <- rfPredict

ggplot(data_to_compare, aes(x = year)) +
  geom_line(aes(y = set_mean_parts, color = "Rzeczywista liczba części"), size = 1) +
  geom_line(aes(y = Predictions, color = "Przewidywana liczba części"), size = 1) +
  scale_y_continuous(labels = label_comma()) +
  labs(x = "Rok", y = "Liczba części") +
  scale_color_manual(name = "Legenda", values = c("Rzeczywista liczba części" = "#00abff", "Przewidywana liczba części" = "red")) +
  theme_bw() -> ml_plot

ggplotly(ml_plot)

9 Predykcja - forecasting

Analizując podany zbiór danych podjęto również próbę predykcji wartości wybranych cech LEGO w przyszłych 15 latach. Wykorzystano w tym celu bibliotekę forecast (model Arima).

## Predykcja dla new_themes_count :
##      Point Forecast    Lo 80     Hi 80    Lo 95     Hi 95
## 2024       84.88862 78.57729  91.19995 75.23627  94.54097
## 2025       86.68446 78.86364  94.50527 74.72356  98.64536
## 2026       87.96879 78.64695  97.29064 73.71227 102.22532
## 2027       89.39031 78.83531  99.94531 73.24783 105.53280
## 2028       90.77504 79.10269 102.44739 72.92372 108.62636
## 2029       92.16963 79.48136 104.85790 72.76460 111.57467
## 2030       93.56158 79.93205 107.19111 72.71701 114.40615
## 2031       94.95424 80.44460 109.46388 72.76366 117.14482
## 2032       96.34670 81.00731 111.68609 72.88713 119.80628
## 2033       97.73922 81.61273 113.86571 73.07588 122.40256
## 2034       99.13173 82.25480 116.00865 73.32069 124.94276
## 2035      100.52423 82.92885 118.11962 73.61441 127.43405
## 2036      101.91674 83.63110 120.20238 73.95127 129.88221
## 2037      103.30925 84.35848 122.26001 74.32656 132.29194
## 2038      104.70175 85.10843 124.29508 74.73635 134.66716

## Predykcja dla sets_count :
##      Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2024       930.1458 842.5181 1017.774 796.1307 1064.161
## 2025       948.2917 824.3673 1072.216 758.7657 1137.818
## 2026       966.4375 814.6618 1118.213 734.3166 1198.558
## 2027       984.5833 809.3278 1159.839 716.5532 1252.614
## 2028      1002.7292 806.7875 1198.671 703.0623 1302.396
## 2029      1020.8750 806.2317 1235.518 692.6064 1349.144
## 2030      1039.0208 807.1796 1270.862 684.4502 1393.591
## 2031      1057.1667 809.3179 1305.015 678.1148 1436.219
## 2032      1075.3125 812.4292 1338.196 673.2672 1477.358
## 2033      1093.4583 816.3550 1370.562 669.6654 1517.251
## 2034      1111.6042 820.9758 1402.233 667.1264 1556.082
## 2035      1129.7500 826.1985 1433.301 665.5081 1593.992
## 2036      1147.8958 831.9495 1463.842 664.6976 1631.094
## 2037      1166.0417 838.1686 1493.915 664.6031 1667.480
## 2038      1184.1875 844.8067 1523.568 665.1493 1703.226

## Predykcja dla figures_count :
##      Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
## 2024       1194.233 1100.033 1288.433 1050.166 1338.299
## 2025       1228.881 1118.978 1338.783 1060.799 1396.962
## 2026       1248.599 1117.425 1379.773 1047.986 1449.212
## 2027       1274.275 1127.600 1420.949 1049.956 1498.594
## 2028       1297.573 1135.897 1459.249 1050.311 1544.836
## 2029       1321.820 1146.788 1496.853 1054.131 1589.509
## 2030       1345.689 1158.113 1533.265 1058.816 1632.561
## 2031       1369.708 1170.428 1568.988 1064.936 1674.481
## 2032       1393.668 1183.314 1604.021 1071.960 1715.376
## 2033       1417.651 1196.786 1638.516 1079.867 1755.435
## 2034       1441.625 1210.724 1672.526 1088.492 1794.758
## 2035       1465.603 1225.085 1706.121 1097.762 1833.443
## 2036       1489.579 1239.814 1739.344 1107.596 1871.562
## 2037       1513.555 1254.874 1772.237 1117.936 1909.175
## 2038       1537.532 1270.231 1804.833 1128.730 1946.334